package com.niit.session14.inner;

public class Test {
	public static void main(String[] args) {
//		广西老表打招呼
		GuangXi guangXi = new GuangXi();
		guangXi.sayHi();
//		吉林
		JiLin jiLin = new JiLin();
		jiLin.sayHi();
//		如果一个类只是用一次，我们就可以把它定义为一个匿名内部类
//		来了一个北京的朋友
//		用父类的引用接收子类的对象，多态
//		在java中接口无法被实例化，这里new的其实是一个没有名字的类，这个类实现了Greeting接口
//		new出来的就是一个对象，但是这个对象没有类名，只能使用父类取接收这个对象
//		出现了实现关系，也有方法的重写，也有父类引用指向子类对象，所以这是多态的体现
		Greeting beiJing = new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("吃了吗？您嘞");
			}
		};
		beiJing.sayHi();
//		来了一个美国的朋友
		new Greeting() {
			@Override
			public void sayHi() {
				System.out.println("Yo What's up Bro!");
			}
		}.sayHi();
//		又来了一个广东的朋友
//		使用Lambda定义匿名内部类
		Greeting guangDong = () -> System.out.println("你好！靓仔~");
		guangDong.sayHi();
		
		
	}

}
